angular.module('eYe')
	.controller('ContactController', function($scope, $routeParams, Connexion, DataBase, safeApply) {
	
		DataBase.BD_Themes_Qcms.Qcms.toArray().then(function(tabQcms){	

			$scope.listeQcm = tabQcms;

			$scope.messageHorsLigne = '';				
			if(Offline.state == 'down'){
				$scope.messageHorsLigne = 'Vous êtes actuellement en mode Hors Connexion. Cependant, vous pouvez remplir et valider le formulaire de contact. Votre demande sera envoyée lors de votre prochaine connexion.';
			}
			
			$scope.listeFormulairesContact = [
				{id:-1,libelle:'-- Type de demande --'},
				{id:0,libelle:'Autre'},
				{id:1,libelle:'Demande d\'information'},
				{id:2,libelle:'Signaler une erreur dans un QCM'},
				{id:3,libelle:'Signaler un dysfonctionnement'}
				
			];
			
			$scope.formulaireSelectionne = $scope.listeFormulairesContact[0];
			
			$scope.listeQcm.unshift({id:-1,titre:'-- QCM -- '});
			
			$scope.qcmSelectionne = $scope.listeQcm[0];
			
			if(typeof $routeParams.formulaireId !== 'undefined'){
			
				var idFormaulaire = $routeParams.formulaireId;
				$scope.formulaireSelectionne = $scope.listeFormulairesContact[idFormaulaire];
				
				if((idFormaulaire == 3) && (typeof $routeParams.qcmId !== 'undefined')){
					var idQcm = $routeParams.qcmId;
					$scope.qcmSelectionne = $scope.listeQcm[idQcm];
					$('#select_qcm').show();
				}
			}
			
			safeApply($scope);
			Connexion.cacherCacheConnexion();
		});

		$scope.selectionnerFormulaire = function() {
			if($scope.formulaireSelectionne.id == $scope.listeFormulairesContact[3].id){
				$('#select_qcm').show();
			}
			else{
				$('#select_qcm').hide();
			}
		};
		
		$scope.envoyerDemandeContact = function() {		

			$scope.message_contact = '';

			if($('#select_type_formulaire_contact option:eq(0)').is(':selected')){				
				$scope.message_contact = 'Sélectionnez un type de demande';
				return false;
			}

			if($('#select_type_formulaire_contact option:eq(3)').is(':selected') && $('#select_qcm option:eq(0)').is(':selected')){				
				$scope.message_contact = 'Sélectionnez le QCM à l\'origine de votre demande';
				return false;
			}

			if($scope.message.length == 0){
				$scope.message_contact = 'Saisissez un message décrivant votre demande';
				return false;
			}

			var idQcm = -1;
			if($scope.formulaireSelectionne.id == 2){
				idQcm = $scope.qcmSelectionne.id;
			}	
			$.when(
				DataBase.addValueTable(DataBase.BD_Donnees_Utilisateur,DataBase.BD_Donnees_Utilisateur.Contacts,new Contact({type_demande:$scope.formulaireSelectionne.libelle,message:$scope.message,qcm_id:idQcm,utilisateur_id:utilisateurActuel.id}),false)
			).then(function(){
				DataBase.envoyerDemandeContact(true);
			});			
		};
						
	});